package base_config

type ConsulConfig struct {
	Host string `mapstructure:"host" yaml:"host"` // 用户服务的主机地址，对应配置文件中的 "host" 字段
	Port string `mapstructure:"port" yaml:"port"` // 用户服务的端口号，对应配置文件中的 "port" 字段
}

type RegisterCheck struct {
	Timeout            string `mapstructure:"timeout" yaml:"timeout"`                         // 服务器名称，对应配置文件中的 "name" 字段
	Interval           string `mapstructure:"interval" yaml:"interval"`                       // 服务器名称，对应配置文件中的 "name" 字段
	DeregisterCritical string `mapstructure:"deregister-critical" yaml:"deregister-critical"` // 服务器名称，对应配置文件中的 "name" 字段
}

type RegisterService struct {
	ID      string   `mapstructure:"id" yaml:"id"`
	Name    string   `mapstructure:"name" yaml:"name"`
	Port    int      `mapstructure:"port" yaml:"port"`
	Tags    []string `mapstructure:"tags" yaml:"tags"`
	Address string   `mapstructure:"addr" yaml:"addr"`
}

type Register struct {
	Check   RegisterCheck   `mapstructure:"check" yaml:"check"` // 服务器名称，对应配置文件中的 "name" 字段
	Service RegisterService `mapstructure:"service" yaml:"service"`
}

type RegisterConsul struct {
	IsRegister bool
	Consul     ConsulConfig
	Register   Register
}
